package com.o2o.dao;

import com.o2o.entity.Product;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * package_name:com.o2o.dao
 * Author:徐亚远
 * Date:2019/12/17 9:22
 * 项目名:o2o
 * Desription:
 **/
public interface ProductDao {
    /*
     * 查询商品列表分页,可输入条件有:商品名(模糊),商品状态,店铺ID,商品类别
     * @param productCondition
     * @param rowIndex
     * @param pageSize
     * @return
     *
     * */
    List<Product> queryProductList(@Param("productCondition") Product productCondition,
                                   @Param("rowIndex") int rowIndex,
                                   @Param("pageSize") int pageSize);

    /*
     * 查询对应商品总数
     * @param productConfition
     * @return
     * */
    int queryProductCount(@Param("productCondition") Product productCondition);

    /*
     *通过productId查询唯一的商品信息
     * @param productId
     * @return
     * */
    Product queryProductById(Long productId);

    /*
     * 插入商品
     * @param product
     * @return
     * */
    int insertProduct(Product product);

    /*
     *更新商品
     * @param product
     * @return
     * */
    int updateProduct(Product product);

    /*
    * 删除商品之前,将商品类别id置为空
    * @param productCategoryId
    * @return
    * */
    int updateProductCategoryToNull(Long productCategoryId);

    /*
    *删除商品
    * @param productId
    * @return
    * */
    int deleteProduct(@Param("productId") long productId, @Param("shopId") long shopId);
}
